﻿using Tszy.Unlimited.Data.AdoNet.Sql.Descriptors;

namespace Tszy.Unlimited.Data.AdoNet.Sql.Components.Expressions.Where
{
    /// <summary>
    /// 条件表达式处理结果。
    /// </summary>
    public class WhereExpressionResult
    {
        /// <summary>
        /// 操作状态。
        /// </summary>
        public bool Status { get; set; }

        /// <summary>
        /// 条件表达式描述。
        /// </summary>
        public IWhereComparisonExpressionDescriptor ComparisonExpressionDescriptor { get; set; }

        /// <summary>
        /// 逻辑表达式描述。
        /// </summary>
        public IWhereLogicalExpressionDescriptor LogicalExpressionDescriptor { get; set; }

        /// <summary>
        /// 变量表达式描述。
        /// </summary>
        public IWhereMemberExpressionDescriptor MemberExpressionDescriptor { get; set; }

        /// <summary>
        /// 函数表达式描述器。
        /// </summary>
        public IWhereCallExpressionDescriptor CallExpressionDescriptor { get; set; }
    }

    /// <summary>
    ///
    /// </summary>
    public enum WhereExpressionType
    {
        /// <summary>
        ///
        /// </summary>
        None = 0,

        /// <summary>
        ///
        /// </summary>
        Parameter = 1,

        /// <summary>
        ///
        /// </summary>
        Value = 2
    }
}